package org.hxyjs.controller;

import org.hxyjs.dto.DTO;
import org.hxyjs.entity.Field;
import org.hxyjs.page.PageInfo;
import org.hxyjs.service.FieldService;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@CrossOrigin
@Controller //@Controller注解是用spring容器生成 对象 默认对象名 fieldController
@RequestMapping("/fieldController") //@RequestMapping 用户请求查找该资源使用的名字 网名 默认  /fieldController
public class FieldController {
	@Resource
	FieldService fieldService;

	@GetMapping("/getAllfield")
	@ResponseBody //把方法的返回值按json转换之后 输出到浏览器
    public DTO<Field> getAllField() throws Exception{
    	System.out.println("查询全部场地");
    	return fieldService.getAllFields();
    }

	@PostMapping("/addfield")
	@ResponseBody
	public DTO<Field> addField(@RequestBody Field field) throws Exception{//如何从页面传入参数到方法 用这个注解绑定变量@PathVariable
		System.out.println("增加场地成功");
		return fieldService.addField(field);
	}
	@DeleteMapping("/deletefield/{fno}")
	@ResponseBody
    public DTO<Field> deleteFieldByFno(@RequestBody @PathVariable("fno") String fno) throws Exception{//如何从页面传入参数到方法 用这个注解绑定变量@PathVariable
    	System.out.println(fno+"删除场地成功");
    	return fieldService.deleteFieldByFno(fno);
    }

	@GetMapping("/fieldBy/{fno}")
	@ResponseBody
	public DTO<Field> getFieldByFno(@PathVariable("fno") String fno) throws Exception{//如何从页面传入参数到方法 用这个注解绑定变量@PathVariable
		System.out.println(fno+"根据主键查询场地成功");
		return fieldService.getFieldByFno(fno);
	}

	@PatchMapping("/updatefield")
	@ResponseBody
	public DTO<Field> updateFieldByFno(@RequestBody Field field) throws Exception{//如何从页面传入参数到方法 用这个注解绑定变量@PathVariable
		System.out.println("修改场地成功");
		System.out.println(field);
		return fieldService.updateFieldByFno(field);
	}

	@RequestMapping("/field/pageInfo")
	@ResponseBody
	public DTO<Field> getFieldByPage(@SpringQueryMap PageInfo pageInfo) throws Exception{//如何从页面传入参数到方法 用这个注解绑定变量@PathVariable
		System.out.println("查询分页");
		return fieldService.getFieldByPage(pageInfo);
	}

}
